package cn.hongwei.mall.pms.api;

import cn.hongwei.mall.common.bean.PageParamVo;
import cn.hongwei.mall.common.bean.ResponseVo;
import cn.hongwei.mall.pms.entity.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author Great
 * @email 1224028994@qq.com
 */
public interface MallPmsApi {
    @ApiOperation("分页查询spu，search工程需要调用的接口，这个接口被继承的时候要重写")
    @GetMapping("pms/spu/listPage")
    ResponseVo<List<SpuEntity>> listPage(PageParamVo pageParamVo);

    @ApiOperation("根据spuId查询sku列表")
    @GetMapping("pms/sku/spu/{spuId}")
    ResponseVo<List<SkuEntity>> querySkuBySpuId(@PathVariable("spuId") Long spuId);

    @GetMapping("pms/brand/{id}")
    @ApiOperation("品牌详情查询")
    ResponseVo<BrandEntity> queryBrandById(@PathVariable("id") Long id);

    @GetMapping("pms/category/{id}")
    @ApiOperation("根据分类id查询分类")
    ResponseVo<CategoryEntity> queryCategoryById(@PathVariable("id") Long id);

    @ApiOperation("根据skuId和分类id查询销售属性")
    @GetMapping("pms/skuattrvalue/sku/{skuId}")
    ResponseVo<List<SkuAttrValueEntity>> querySearchAttrValuesBySkuIdAndCid(@PathVariable("skuId") Long skuId,
                                                                                   @RequestParam("cid") Long cid);

    @ApiOperation("根据skuId和分类id查询基本属性")
    @GetMapping("pms/spuattrvalue/spu/{spuId}")
    ResponseVo<List<SpuAttrValueEntity>> querySearchAttrValuesBySpuIdAndCid(@PathVariable("spuId") Long spuId,
                                                                                   @RequestParam("cid") Long cid);

    @GetMapping("pms/spu/{id}")
    @ApiOperation("详情查询")
    ResponseVo<SpuEntity> querySpuById(@PathVariable("id") Long id);
}
